package com.xyb.dao;

import com.xyb.entity.SysUser;
import java.util.List;

/**
 * 系统用户(SysUser)表数据库访问层
 *
 * @author makejava
 * @since 2021-09-09 10:48:09
 */
public interface SysUserDao {
    /**
     * 【插入单条】
     *
     * @param sysUser 实例对象
     * @return 影响行数
     */
    int insertSysUser(SysUser sysUser);
    
    /**
     * 【删除单条】根据主键 id
     *
     * @param userId 主键id
     * @return 影响行数
     */
    int deleteSysUserByUserId(Long userId);

    /**
     * 【更新单条】根据主键 id
     *
     * @param sysUser 主键id
     * @param sysUser 更新数据
     * @return 影响行数
     */
    int updateSysUserByUserId(SysUser sysUser);

    /**
     * 【查询单条】根据主键id,查询所有字段
     *
     * @param userId  主键id
     * @return SysUser 对象信息
     */
    SysUser selectSysUserByUserId(Long userId);
    
    
    //****************************** 批量操作 ******************************
    
    /**
     * 【批量插入】根据对象列表
     *
     * @param list 新增对象列表
     * @return 影响行数
     */
    int insertSysUserBySysUserList(List<SysUser> list);
    
    /**
     * 【批量删除】根据主键 id 列表
     *
     * @param list 主键id列表
     * @return 影响行数
     */
    int deleteSysUserByUserIdList(List<Long> list);
    
    /**
     * 【批量更新】根据对象列表,
     *
     * @param list 对象列表
     * @return 影响行数
     */
    int updateSysUserBySysUserList(List<SysUser> list);

    /**
     * 【批量查询】根据主键列表,查询所有字段
     *
     * @param list 主键id列表
     * @return List<SysUser> 对象列表
     */
    List<SysUser> selectSysUserListByUserIdList(List<Long> list);

    /**
     * 根据手机号查询用户信息
     * @param iphoneNo
     * @return
     */
    SysUser selectSysUserByIphoneNo(String iphoneNo);

    List<SysUser> selectSysUserListByStatus(Integer status);
}